Most computing devices utilize a firmware to control their low-level operation. The firmware is typically tied closely to the particular hardware components of the computing device. The firmware is generally stored in a non-volatile memory device, such as a read only memory (“ROM”), erasable programmable read only memory (“EPROM”), or a flash memory device. The firmware might be periodically updated in order to fix bugs or introduce new functionality.
In many types of computing devices, the firmware provides functionality for performing a power-on self-test (“POST”) of the computing device, for booting the computing device (which might also be referred to as performing an initial program load (“IPL”)), for providing interfaces to the low-level operation of the hardware of the computing device to an operating system executing on the computing device, and for performing other types of functions.
Many desktop, laptop, and server computers utilize a firmware known as a Basic Input and Output System (“BIOS”). The BIOS includes low-level instruction code that is used as an intermediary between the hardware components of the computing system and the operating system and other high-level software executing on the computing system. For example, the BIOS might provide a set of software routines that allow high-level software to interact with the hardware components of the computing device using standard calls.
Other desktop, laptop, and server computers might utilize a firmware that is compatible with the Unified Extensible Firmware Interface (“UEFI”) Specification from INTEL CORPORATION or the OPEN FIRMWARE specification from SUN MICROSYSTEMS. Smartphone, tablet, e-reader, and set-top box computing devices might utilize other types of open and proprietary firmware to control various aspects of their operation.
It is with respect to these and other considerations that the disclosure made herein is presented.